//package cn.gyouzhe.component.aop;
//
//import lombok.extern.slf4j.Slf4j;
//import org.aspectj.lang.ProceedingJoinPoint;
//import org.aspectj.lang.annotation.Around;
//import org.aspectj.lang.annotation.Aspect;
//import org.aspectj.lang.annotation.Pointcut;
//import org.springframework.stereotype.Component;
//
///**
// * 日志切面
// *
// * @author wangchuan
// * @datetime 2018/3/3 20:53
// */
//@Aspect
//@Component
//@Slf4j
//public class ServiceLogAopHandler {
//    /**
//     * service日志切面
//     */
//    @Pointcut("execution(public * cn.gyouzhe.service.*.*(..))")
//    public void serviceLog() {
//    }
//
//    /**
//     * 定义开始日志
//     */
////    @Before("serviceLog()")
////    public void doBefore(JoinPoint joinPoint) {
////        log.info("CLASS_METHOD : " + joinPoint.getSignature().getDeclaringTypeName() + "." + joinPoint.getSignature().getName());
////    }
//
//    /**
//     * 执行环绕通知
//     * @param thisJoinPoint 链接点
//     * @return 请求后的对象
//     */
//    @Around("serviceLog()")
//    public Object doAround(ProceedingJoinPoint thisJoinPoint) {
//        String classMethodName = thisJoinPoint.getSignature().getDeclaringTypeName() + "." + thisJoinPoint.getSignature().getName();
//        try {
//            long start = System.currentTimeMillis();
//            Object obj = thisJoinPoint.proceed();
//            log.trace("执行{}耗时{}", classMethodName, (System.currentTimeMillis() - start));
//            return obj;
//        } catch(Throwable e) {
//            log.error("执行{}异常", classMethodName, e);
//        }
//        return null;
//    }
//}
